package com.company.cloud.behavior.modules.api.fallback;

import com.company.cloud.behavior.modules.api.response.*;
import com.company.cloud.behavior.modules.api.service.BehaviorClientService;
import com.company.cloud.common.bean.BaseClientResult;
import feign.hystrix.FallbackFactory;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Log4j2
@Component
public class BehaviorClientServiceFallbackFactory implements FallbackFactory<BehaviorClientService> {

    @Override
    public BehaviorClientService create(Throwable cause) {
        return new BehaviorClientService() {
            @Override
            public BaseClientResult<CollectionSearchModel> getCollectionInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<List<CollectionSearchModel>> getCollectionList(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<Integer> getCommentInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<CommentSearchModel> getCommentUserInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<List<Integer>> getCommentList(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<FollowSearchModel> getFollowInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<List<FollowSearchModel>> getFollowList(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<Map<String, FollowSearchModel>> getFollowMap(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<ThumbsUpSearchModel> getThumbsUpInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<ThumbsUpSearchModel> getThumbsUpUserInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<List<ThumbsUpSearchModel>> getThumbsUpList(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<Map<String, ThumbsUpSearchModel>> thumbsUpMap(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<BigDecimal> getScoreAvgInfo(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<Map<String, BigDecimal>> getScoreAvgList(BehaviorSearchListParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<UserScoreSearchModel> getUserScoreSearchModel(BehaviorSearchParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<BehaviorSearchAllModel> getBehaviorInfo(BehaviorSearchAllParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<List<BehaviorSearchAllModel>> getBehaviorList(BehaviorSearchListAllParam param) {
                return BaseClientResult.callbackError();
            }

            @Override
            public BaseClientResult<Map<String, BehaviorSearchAllModel>> getBehaviorMap(BehaviorSearchListAllParam param) {
                return BaseClientResult.callbackError();
            }

        };
    }

}
